//index.js
const app = getApp()
//初始化数据库
const db = wx.cloud.database();
Page({
  data: {
    avatarUrl: './user-unlogin.png',
    userInfo: {},
    logged: false,
    takeSession: false,
    requestResult: '',
    images:[],
  },
  
    //插入
    insert() {
        //回调函数写法
        db.collection('user').add({
            data: {
                name: 'zahngqianfeng',
                age: 20
            },
            success: res => {
                console.log(res)
            },
            fail: err => {
                console.log(err)
            }
        })
        //Promise写法
        // db.collection('user').add({
        //     data: {
        //         name: 'zhangqianfeng',
        //         age: 20
        //     },
        // }).then((res)=>{
        //     console.log(res)
        // }).catch((err)=>{
        //     console.log(err)
        // })
    },
    //更新数据
    update() {
        db.collection('user').doc('2f54b0685d171c83030070b75bbf0b1a').update({
            data: {
                name: 'zhangqianfeng',
                age: 22
            },
            success(res) {
                console.log(res)
            }
        })
    },
    //查找
    search() {
        //注意：根据当前用户的_openid查找，故这里只能查询到调用云数据库API接口的数据，手动在数据库添加的数据没有_openid 查询不到
        //修改数据库权限为：所有用户可读，仅创建者可读写，即可查找当前集合所有匹配信息
        db.collection('user').where({
            name: 'zhangqianfeng'
        }).get().then((res) => {
            console.log(res)
        }).catch((err) => {
            console.log(err)
        })
    },
    //删除
    delete() {
        //仅支持单个删除，批量删除需调用云函数
        db.collection('user').doc('2f54b0685d171c83030070b75bbf0b1a').remove().then((res) => {
            console.log(res)
        }).catch((err) => {
            console.log(err)
        })
    },
    //求和
    sum() {
        wx.cloud.callFunction({
            name: 'sum',
            data: {
                a: 2,
                b: 3
            }
        }).then((res) => {
            console.log(res)
        }).catch(err => {

        })
    },
    //获取OpenID
    getOpenId() {
        //login云函数中已封装上下文信息,包含openid
        wx.cloud.callFunction({
            name: 'login',
        }).then(res => {
            console.log(res)
        }).catch(err => { })
    },
    //批量删除
    batchDelete() {
        debugger
        wx.cloud.callFunction({
            name: 'batchDelete',
        }).then(res => {
            console.log(res)
        }).catch(err => { })
    },
    //上传图片
    upload(){
        wx.chooseImage({
            count: 1,//选择图片个数
            sizeType: ['original','compressed'],//源文件还是压缩文件
            sourceType: ['album', 'camera'],//相册还是相机拍照
            success: function(result) {
                
                const { tempFilePaths } = result;
                console.log(tempFilePaths)

                wx.cloud.uploadFile({
                    cloudPath: new Date().getTime()+'.png',//云端路径  保证路径名唯一
                    filePath: tempFilePaths[0], // 文件路径
                    success: res => {
                        // 返回文件id
                        console.log(res.fileID)
                        //将fileID存入云数据库
                        db.collection('user').add({
                            data: {
                                name: 'zhangqianfeng',
                                fileID: res.fileID
                            },
                            success: res2 => {
                                console.log(res2)
                                
                            },
                            fail: err => {
                                console.log(err)
                            }
                        })
                    },
                    fail: err => {
                        // handle error
                    }
                })
            },
        })
    },
    //获取文件
    getFile(){
        wx.cloud.callFunction({
            name: 'login',
        }).then((res)=>{
            db.collection('user').where({
                _openid: res.result.openid
            }).get().then((res2)=>{
                debugger
                this.setData({
                    images: res2.data
                })
            })
        }).catch(()=>{

        })
    },
    //下载文件
    downloadFile(event){
        debugger
        wx.cloud.downloadFile({
            fileID: event.target.dataset.fileID
        }).then(res => {
            // get temp file path
            console.log(res.tempFilePath)
            //保存图片到手机相册
            wx.saveImageToPhotosAlbum({
                filePath: res.tempFilePath,
                success(res){
                    wx.showToast({
                        title: '保存成功',
                    })
                }
            })
        }).catch(error => {
            // handle error
        })
    },

  onLoad: function() {
    if (!wx.cloud) {
      wx.redirectTo({
        url: '../chooseLib/chooseLib',
      })
      return
    }

    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
          wx.getUserInfo({
            success: res => {
              this.setData({
                avatarUrl: res.userInfo.avatarUrl,
                userInfo: res.userInfo
              })
            }
          })
        }
      }
    })
  },

  onGetUserInfo: function(e) {
    if (!this.logged && e.detail.userInfo) {
      this.setData({
        logged: true,
        avatarUrl: e.detail.userInfo.avatarUrl,
        userInfo: e.detail.userInfo
      })
    }
  },

  onGetOpenid: function() {
    // 调用云函数
    wx.cloud.callFunction({
      name: 'login',
      data: {},
      success: res => {
        console.log('[云函数] [login] user openid: ', res.result.openid)
        app.globalData.openid = res.result.openid
        wx.navigateTo({
          url: '../userConsole/userConsole',
        })
      },
      fail: err => {
        console.error('[云函数] [login] 调用失败', err)
        wx.navigateTo({
          url: '../deployFunctions/deployFunctions',
        })
      }
    })
  },

  // 上传图片
  doUpload: function () {
    // 选择图片
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: function (res) {

        wx.showLoading({
          title: '上传中',
        })

        const filePath = res.tempFilePaths[0]
        
        // 上传图片
        const cloudPath = 'my-image' + filePath.match(/\.[^.]+?$/)[0]
        wx.cloud.uploadFile({
          cloudPath,
          filePath,
          success: res => {
            console.log('[上传文件] 成功：', res)

            app.globalData.fileID = res.fileID
            app.globalData.cloudPath = cloudPath
            app.globalData.imagePath = filePath
            
            wx.navigateTo({
              url: '../storageConsole/storageConsole'
            })
          },
          fail: e => {
            console.error('[上传文件] 失败：', e)
            wx.showToast({
              icon: 'none',
              title: '上传失败',
            })
          },
          complete: () => {
            wx.hideLoading()
          }
        })

      },
      fail: e => {
        console.error(e)
      }
    })
  },

})
